package com.yf.course.modules.course.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yf.base.api.api.dto.PagingReqDTO;
import com.yf.course.modules.course.dto.CourseFileDTO;
import com.yf.course.modules.course.dto.KnowladgeDTO;
import com.yf.course.modules.course.dto.ext.CourseRefDirExtDTO;
import com.yf.course.modules.course.dto.request.CourseFileFetchReqDTO;
import com.yf.course.modules.course.dto.request.CourseFileReqDTO;
import com.yf.course.modules.course.entity.CourseFile;

import java.util.List;

/**
* <p>
* 课件信息业务类
* </p>
*
* @author 聪明笨狗
* @since 2020-12-17 11:28
*/
public interface CourseFileService extends IService<CourseFile> {

    /**
    * 分页查询数据
    * @param reqDTO
    * @return
    */
    IPage<CourseFileDTO> paging(PagingReqDTO<CourseFileReqDTO> reqDTO);

    /**
     * 保存课件文件
     * @param reqDTO
     */
    CourseFileDTO save(CourseFileDTO reqDTO);

    /**
     * 批量保存文件
     */
    void batchSave(List<CourseFile> courseFiles);

    /**
     * 删除课件
     * @param ids
     */
    void delete(List<String> ids);

    /**
     * 根据上级类目来加载数据
     * @param reqDTO
     * @return
   re*/
    List<CourseRefDirExtDTO> fetchByCatId(CourseFileFetchReqDTO reqDTO);

    /**
     * 更新文件状态
     * @param reqDTO
     */
    void updateFileStatus(CourseFileDTO reqDTO);

    void addKnowledgePoint(KnowladgeDTO knowledgeDTO);
}
